package com.ysstech.etfmanage.enums;

import java.util.Arrays;

import com.ysstech.common.enums.BaseEnum;
import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * ETF替代标志常量
 *
 * @author lsl
 */
@Getter
@AllArgsConstructor
public enum EtfReplaceCodeEnum implements BaseEnum<Integer> {
    H_REPLACE_CODE_ZERO(0, "表示该股票为沪市股票，禁止现金替代（必须用股票"),
    H_REPLACE_CODE_ONE(1, "表示该股票为沪市股票，可以进行现金替代（先用股票，股票不足的话用现金替代"),
    H_REPLACE_CODE_TWO(2, "表示该股票为沪市股票，必须用现金替代"),
    H_REPLACE_CODE_THREE(3, "表示该股票为深市股票，退补现金替代"),
    H_REPLACE_CODE_FOUR(4, "表示该股票为深市股票，必须现金替代"),
    H_REPLACE_CODE_FIVE(5, "表示非沪深市场成分股退补现金替代"),
    H_REPLACE_CODE_SIX(6, "表示非沪深市场成份股必须现金替代"),
    S_REPLACE_CODE_ZERO(0, "表示禁止现金替代（必须用证券）"),
    S_REPLACE_CODE_ONE(1, "表示可以进行现金替代（先用证券，证券不足的话用现金替代"),
    S_REPLACE_CODE_TWO(2, "表示必须用现金替代");

    private final Integer code;
    private final String desc;

    public static EtfReplaceCodeEnum getEnum(Integer code) {
        return Arrays.stream(values()).filter(b -> b.code == code).findFirst().orElse(null);
    }

    public static String getEnumDesc(Integer code) {
        EtfReplaceCodeEnum e = getEnum(code);
        return e != null ? e.desc : null;
    }
}
